package com.study.pre.thread;

public class Demo1 {

    public static void main(String[] args) {


        /**
         * 包子铺
         *
         * 1、实现一个多线程 的程序
         *
         *
         * 生产者  消费者
         *
         * 包子
         *
         * 包子+
         * 包子-
         * 包子+
         * 。。。
         *
         * LinkedBlockingQueue<Obj>
         *
         * ArrayBlockingQueue<Obj>
         *
          */

        int i=0;
        while(i>2){
             if(i==0){
                 System.out.println("produce i + 1 = "+i++);
             }

             if(i==1){
                 System.out.println("consumer i - 1 = "+i--);
             }
        }



        // 生产者  消费者   （包子）  通讯

        // 队列  queue  消息队列  product queue 输入  输出

        // 多线程  单生产者  单消费者  轮训   真实环境，多生产者，多消费者 ，解耦 消息队列

        // web 开发的，多线程的开发场景， 较少  kafka （服务器开发）  nio java netty (I/O)，c

        // Threadlocal web tomcat copy 到当前线程里面  维护成本高   不建议


        BaoZi baoZi = new BaoZi("bz");
        Product product = new Product();
        product.setBaoZi(baoZi);

        Consumer consumer = new Consumer();
        consumer.setBaoZi(baoZi);

        product.start();
        consumer.start();


    }
}
